#include <iostream>
#include <signal.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/wait.h>

using namespace std;

// int main()
// {

//     int a = 10, b = 0;
//     a /= b;
//     cout << "a=" << a << endl;
//     // pid_t id = fork();
//     // if (id == 0)
//     // {
//     //     int cnt = 500;
//     //     while (cnt)
//     //     {
//     //         cout << "i am a child porcess,pid:" << getpid() << "cnt::" << cnt << endl;
//     //         sleep(1);
//     //         cnt--;
//     //     }
//     //     exit(0);
//     // }
//     // int status = 0;
//     // pid_t rid = waitpid(id, &status, 0);
//     // if (rid == id)
//     // {
//     //     cout << "child quit info,rid:" << rid << "exit code:" << ((status >> 8) & 0xff)
//     //          << "exit signal:" << (status & 0x7f)
//     //          << "core dump" << ((status >> 7) & 1) << endl;
//     // }
//     return 0;
// }

// void handler(int signo)
// {

//     cout << "get signal :" << signo << endl;
//     int n = alarm(5);
//     cout << n << endl;
// }

// int main()
// {
//     signal(14, handler);
//     int n = alarm(15);

//     while (1)
//     {
//         cout << "process is running,pid:" << getpid() << endl;
//         sleep(1);
//     }
//     return 0;
// }
// int main()
// {
//     signal(11, handler);
//     cout << "div before" << endl;
//     sleep(1);
//     // int a = 10;
//     // a /= 0;
//     int *p = nullptr;
//     *p = 100;
//     cout << "div after" << endl;
//     sleep(1);
//     return 0;
// }
